home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1983-09-07 | 25.1 KB | 587 lines |
- 1 KEY 1,"NAV"+CHR$(13)
- 2 KEY 2,"SRS"+CHR$(13):KEY 3,"LRS"+CHR$(13):KEY 4,"PHA"+CHR$(13)
- 3 KEY 5,"TOR"+CHR$(13):KEY 6,"SHE"+CHR$(13):KEY 7,"DAM"+CHR$(13)
- 4 KEY 8,"COM"+CHR$(13)
- 5 KEY 9,"":KEY 10,""
- 9 KEY ON
- 10 REM ****INSTRUCTIONS FOR SUPER STAR TREK FROM CREATIVE COMPUTING
- 20 REM ****PUT ON IBM PC BY STEVENS ON 2-10-82
- 30 CLS:LOCATE 9,1
- 40 PRINT TAB(10);"*************************************"
- 50 PRINT TAB(10);"* *"
- 60 PRINT TAB(10);"* ** SUPER STAR TREK ** *"
- 70 PRINT TAB(10);"* *"
- 80 PRINT TAB(10);"*************************************"
- 90 FOR I=1 TO 8: PRINT:NEXT I
- 100 INPUT "DO YOU NEED INSTRUCTIONS (Y/N)"; K$: IF K$<>"Y" AND K$ <>"y" THEN 1450
- 110 PRINT
- 120 PRINT :PRINT
- 130 IF INP(1)=13 THEN 130
- 140 POKE 1229,2
- 150 POKE 1237,3
- 160 CLS:PRINT" INSTRUCTIONS FOR `SUPER STAR TREK'"
- 170 PRINT
- 180 PRINT"1. WHEN YOU SEE \COMMAND ?\ PRINTED, ENTER ONE OF THE LEGAL"
- 190 PRINT" COMMANDS (NAV,SRS,LRS,PHA,TOR,SHE,DAM,COM, OR XXX)."
- 200 PRINT "2. IF YOU SHOULD TYPE IN AN ILLEGAL COMMAND, YOU'LL GET A SHORT"
- 210 PRINT " LIST OF THE LEGAL COMMANDS PRINTED OUT."
- 220 PRINT"3. SOME COMMANDS REQUIRE YOU TO ENTER DATA (FOR EXAMPLE, THE"
- 230 PRINT" `NAV' COMMAND COMES BACK WITH `COURSE (1-9) ?'.) IF YOU"
- 240 PRINT" TYPE IN ILLEGAL DATA (LIKE NEGATIVE NUMBERS, THAT COMMAND"
- 250 PRINT" WILL BE ABORTED"
- 260 PRINT
- 270 PRINT" THE GALAXY IS DIVIDED INTO AN 8 X 8 QUADRANT GRID,"
- 280 PRINT"AND EACH QUADRANT IS FURTHER DIVIDED INTO AN 8 X 8 SECTOR GRID."
- 290 PRINT
- 300 PRINT" YOU WILL BE ASSIGNED A STARTING POINT SOMEWHERE IN THE"
- 310 PRINT"GALAXY TO BEGIN A TOUR OF DUTY AS COMMANDER OF THE STARSHIP"
- 320 PRINT"\ENTERPRISE\; YOUR MISSION: TO SEEK AND DESTROY THE FLEET OF"
- 330 PRINT"KLINGON WARSHIPS WHICH ARE MENACING THE UNITED FEDERATION OF"
- 340 PRINT"PLANETS."
- 350 PRINT : PRINT "***TO CONTINUE WITH THE INSTRUCTIONS HIT <ENTER>."
- 360 GOSUB 10500:PRINT
- 370 PRINT" YOU HAVE THE FOLLOWING COMMANDS AVAILABLE TO YOU AS CAPTAIN"
- 380 PRINT"OF THE STARSHIP ENTERPRISE:"
- 390 PRINT
- 400 PRINT"\NAV\ COMMAND = WARP ENGINE CONTROL --"
- 410 PRINT" COURSE IS IN A CIRCULAR NUMERICAL 4 3 2"
- 420 PRINT" VECTOR ARRANGEMENT AS SHOWN . . ."
- 430 PRINT" INTEGER AND REAL VALUES MAY BE ..."
- 440 PRINT" USED. (THUS COURSE 1.5 IS HALF- 5 ---*--- 1"
- 450 PRINT" WAY BETWEEN 1 AND 2 ..."
- 460 PRINT" . . ."
- 470 PRINT" VALUES MAY APPROACH 9.0, WHICH 6 7 8"
- 480 PRINT" ITSELF IS EQUIVALENT TO 1.0
- 490 PRINT" COURSE"
- 500 PRINT" ONE WARP FACTOR IS THE SIZE OF "
- 510 PRINT" ONE QUADRANT. THEREFORE, TO GET"
- 520 PRINT" FROM QUADRANT 6,5 TO 5,5, YOU WOULD"
- 530 PRINT" USE COURSE 3, WARP FACTOR 1.
- 540 PRINT
- 550 PRINT: PRINT : PRINT "***TO CONTINUE WITH THE INSTRUCTIONS, HIT <ENTER>."
- 560 GOSUB 10500:PRINT :PRINT:PRINT :PRINT
- 570 PRINT :PRINT :PRINT
- 580 PRINT"\SRS\ COMMAND = SHORT RANGE SENSOR SCAN"
- 590 PRINT
- 600 PRINT" SYMBOLOGY ON YOR SENSOR SCREEN IS AS FOLLOWS:"
- 610 PRINT" <*> = YOUR STARSHIP'S POSITION"
- 620 PRINT" +K+ = KLINGON BATTLE CRUISER"
- 630 PRINT" >!< = FEDERATION STARBASE ( REFUEL/REPAIR/RE-ARM HERE!)"
- 640 PRINT" * = STAR"
- 650 PRINT
- 660 PRINT" A CONDENSED `STATUS REPORT' WILL ALSO BE PRESENTED."
- 670 PRINT
- 680 PRINT "\LRS\ COMMAND = LONG RANGE SENSOR SCAN"
- 690 PRINT" SHOWS CONDITIONS IN SPACE FOR ONE QUADRANT ON EACH SIDE"
- 700 PRINT" OF THE ENTERPRISE (WHICH IS IN THE MIDDLE OF THE SCAN)"
- 710 PRINT
- 720 PRINT" THE SCAN IS CODED IN THE FORM \###\, WHERE THE UNITS DIGIT"
- 730 PRINT" IS THE NUMBER OF STARS, THE TENS DIGIT IS THE NUMBER OF"
- 740 PRINT" STARBASES, AND THE HUNDREDS DIGIT IS THE NUMBER OF"
- 750 PRINT" KLINGONS."
- 760 PRINT
- 770 PRINT" EXAMPLE - 207 = 2 KLINGONS, NO STARBASES, 7 STARS."
- 780 PRINT "***TO CONTINUE WITH THE INSTRUCTIONS, HIT <ENTER>."
- 790 GOSUB 10500:PRINT :PRINT
- 800 PRINT"\PHA\ COMMAND = PHASER CONTROL."
- 810 PRINT" ALLOWS YOU TO DESTROY THE KLINGON BATTLE CRUISERS BY "
- 820 PRINT" ZAPPING THEM WITH SUITABLY LARGE UNITS OF ENERGY TO"
- 830 PRINT" DEPLETE THEIR SHIELD POWER. REMEMBER, KLINGONS HAVE"
- 840 PRINT" PHASERS, TOO!)"
- 850 PRINT
- 860 PRINT"\TOR\ COMMAND = PHOTON TORPEDO CONTROL"
- 870 PRINT" TORPEDO COURSE IS THE SAME AS USED IN WARP ENGINE CONTROL"
- 880 PRINT" IF YOU HIT THE KLINGON VESSEL, HE IS DESTROYED AND"
- 890 PRINT" CANNOT FIRE BACK AT YOU. IF YOU MISS, YOU ARE SUBJECT TO"
- 900 PRINT" HIS PHASER FIRE. IN EITHER CASE, YOU ARE ALSO SUBJECT TO "
- 910 PRINT" THE PHASER FIRE OF ALL OTHER KLINONS IN THE QUADRANT."
- 920 PRINT
- 930 PRINT" THE LIBRARY-COMPUTER (\COM\ COMMAND) HAS AN OPTION TO"
- 940 PRINT" COMPUTE TORPEDO TRAJECTORY FOR YOU (OPTION 2)"
- 950 PRINT
- 960 PRINT :PRINT:PRINT: PRINT "TO CONTINUE WITH THE PROGRAM, HIT <ENTER>."
- 970 GOSUB 10500
- 980 PRINT :PRINT :PRINT
- 990 PRINT :PRINT :PRINT :PRINT
- 1000 PRINT"\SHE\ COMMAND = SHIELD CONTROL"
- 1010 PRINT" DEFINES THE NUMBER OF ENERGY UNITS TO BE ASSIGNED TO THE"
- 1020 PRINT" SHIELDS. ENERGY IS TAKEN FROM TOTAL SHIP'S ENERGY. NOTE"
- 1030 PRINT" THAT THE STATUS DISPLAY TOTAL ENERGY INCLUDES SHIELD ENERGY"
- 1040 PRINT
- 1050 PRINT"\DAM\ COMMAND = DAMAGE CONTROL REPORT"
- 1060 PRINT" GIVES THE STATE OF REPAIR OF ALL DEVICES. WHERE A NEGATIVE"
- 1070 PRINT" `STATE OF REPAIR' SHOWS THAT THE DEVICE IS TEMPORARILY"
- 1080 PRINT" DAMAGED."
- 1090 PRINT :PRINT :PRINT
- 1100 PRINT: PRINT "TO CONTINUE WITH THE INSTRUCTIONS, HIT <ENTER>."
- 1110 GOSUB 10500
- 1120 PRINT
- 1130 PRINT"\COM\ COMMAND = LIBRARY-COMPUTER"
- 1140 PRINT" THE LIBRARY-COMPUTER CONTAINS SIX OPTIONS:"
- 1150 PRINT" OPTION 0 = CUMULATIVE GALACTIC RECORD"
- 1160 PRINT" THIS OPTION SHOWS COMPUTER MEMORY OF THE RESULTS OF A LL"
- 1170 PRINT" PREVIOUS SHORT AND LONG RANGE SENSOR SCANS"
- 1180 PRINT" OPTION 1 = STATUS REPORT"
- 1190 PRINT" THIS OPTION SHOWS THE NUMBER OF KLINGONS, STARDATES,"
- 1200 PRINT" AND STARBASES REMAINING IN THE GAME."
- 1210 PRINT" OPTION 2 = PHOTON TORPEDO DATA"
- 1220 PRINT" WHICH GIVES DIRECTION AND DISTANCE FROM THE ENTERPRISE"
- 1230 PRINT" TO ALL KLINGONS IN YOUR QUADRANT"
- 1240 PRINT" OPTION 3 = STARBASE NAV DATA"
- 1250 PRINT" THIS OPTION GIVES DIRECTION AND DISTANCE TO ANY"
- 1260 PRINT" STARBASE WITHIN YOU QUADRANT"
- 1270 PRINT :PRINT :PRINT :PRINT
- 1280 PRINT "TO CONTINUE WITH THE INSTRUCTIONS, HIT <ENTER>."
- 1290 PRINT
- 1300 GOSUB 10500 : PRINT :PRINT
- 1310 PRINT "CONTINUATION OF AVAILABLE COMPUTER OPTIONS---" : PRINT : PRINT
- 1320 PRINT" OPTION 4 = DIRECTION/DISTANCE CALCULATOR"
- 1330 PRINT" THIS OPTION ALLOWS YOU TO ENTER COORDINATES FOR"
- 1340 PRINT" DIRECTION/DISTANCE CALCULATIONS"
- 1350 PRINT" OPTION 5 = GALACTIC /REGION NAME/ MAP"
- 1360 PRINT" THIS OPTION PRINTS THE NAMES OF THE SIXTEEN MAJOR"
- 1370 PRINT" GALACTIC REGIONS REFERRED TO IN THE GAME."
- 1380 POKE 1229,0:POKE 1237,1
- 1390 IF INP(1)=13 THEN 1390
- 1400 PRINT :PRINT "CONGRATULATIONS, YOU HAVE SUCCESSFULLY GRADUATED FROM STARFLEET ACADEMY."
- 1410 PRINT "YOU ARE NOW READY TO ASSUME THE HELM OF THE ENTERPRISE." :PRINT
- 1420 PRINT "TO OPEN COMMUNICATIONS WITH STARFLEET, INDICATING THAT YOU"
- 1430 PRINT "ARE NOW READY TO BEGIN YOUR JOURNEY, SIMPLY HIT <ENTER>."
- 1440 GOSUB 10500:PRINT
- 1450 REM **** SUPER STAR TREK - MAY 16, 1978 - REQUIRES 24K MEMORY ****
- 1460 REM
- 1470 REM **** **** STAR TREK **** ****
- 1480 REM **** SIMULATION OF A MISSION OF THE STARSHIP ENTERPRISE,
- 1490 REM **** AS SEEN ON THE STAR TREK TV SHOW.
- 1600 CLS
- 1610 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
- 1620 PRINT" ,------*------,"
- 1630 PRINT " ,------------- `--- ------'"
- 1640 PRINT " `-------- --' / /"
- 1650 PRINT" ,---' `-------/ /--,"
- 1660 PRINT " `----------------'":PRINT
- 1670 PRINT" THE USS ENTERPRISE --- NCC-1701"
- 1680 PRINT:PRINT:PRINT:PRINT:PRINT
- 1690 PRINT :PRINT
- 1710 Z$=" "
- 1720 DIM G(8,8),C(9,2),K(3,3),N(3),Z(8,8),D(8)
- 1730 RANDOMIZE VAL(RIGHT$(TIME$,2))
- 1770 PRINT :PRINT :PRINT
- 1780 T=INT(RND(1)*20+20)*100:T0=T:T9=25+INT(RND(1)*10):D0=0:E=3000:E0=E
- 1790 P=10:P0=P:S9=200:S=0:B9=0:K9=0:X$="":X0$=" IS "
- 1800 DEF FND(D)=SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2)
- 1810 DEF FNR(R)=INT(RND(R)*7.98+1.01)
- 1820 REM **************** INITIALIZE ENTERPRISE'S POSITION ****************
- 1830 Q1=FNR(1):Q2=FNR(1):S1=FNR(1):S2=FNR(1)
- 1840 FOR I=1 TO 9:C(I,1)=0:C(I,2)=0:NEXT I
- 1850 C(3,1)=-1:C(2,1)=-1:C(4,1)=-1:C(4,2)=-1:C(5,2)=-1:C(6,2)=-1
- 1860 C(1,2)=1:C(2,2)=1:C(6,1)=1:C(7,1)=1:C(8,1)=1:C(8,2)=1:C(9,2)=1
- 1870 FOR I=1 TO 8:D(I)=0: NEXT I
- 1880 A1$="NAVSRSLRSPHATORSHEDAMCOMXXX"
- 1890 REM ************** SETUP WHAT EXISTS IN GALAXY . . . ******************
- 1900 REM ************ K3= # KLINGONS B3= # STARBASES S3= # STARS ********
- 1910 FOR I=1 TO 8: FOR J=1 TO 8:K3=0:Z(I,J)=0:R1=RND(1)
- 1920 IF R1>0.98 THEN K3=3:K9=K9+3:GOTO 1950
- 1930 IF R1>0.95 THEN K3=2:K9=K9+2:GOTO 1950
- 1940 IF R1>0.8 THEN K3=1:K9=K9+1
- 1950 B3=0:IF RND(1)>0.96 THEN B3=1:B9=B9+1
- 1960 G(I,J)=K3*100+B3*10+FNR(1): NEXT J: NEXT I: IF K9>T9 THEN T9=K9+1
- 1970 IF B9<>0 THEN 2000
- 1980 IF G(Q1,Q2)<200 THEN G(Q1,Q2)=G(Q1,Q2)+100:K9=K9+1
- 1990 B9=0:G(Q1,Q2)=G(Q1,Q2)+10:Q1=FNR(1):Q2=FNR(1)
- 2000 K7=K9:IF B9<>1 THEN X$="S":X0$=" ARE "
- 2010 CLS:PRINT"YOUR ORDERS, SHOULD YOU ACCEPT THIS MISSION, ARE AS FOLLOWS:"
- 2020 PRINT" DESTROY THE";K9;"KLINGON WARSHIPS WHICH HAVE INVADED"
- 2030 PRINT" THE GALAXY BEFORE THEY CAN ATTACK FEDERATION HEADQUARTERS"
- 2040 PRINT" ON STARDATE";T0+T9;" THIS GIVES YOU";T9;"DAYS. THERE";X0$
- 2050 PRINT" ";B9;"STARBASE";X$;" IN THE GALAXY FOR RESUPPLYING YOUR SHIP"
- 2060 PRINT:PRINT"HIT RETURN KEY WHEN READY TO ACCEPT COMMAND"
- 2070 I=RND(1)
- 2080 REM *********** HERE ANY TIME NEW QUADRANT ENTERED ******************
- 2090 Z4=Q1:Z5=Q2:K3=0:B3=0:S3=0:G5=0:D4=0.5*RND(1):Z(Q1,Q2)=G(Q1,Q2)
- 2100 IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 2200
- 2110 GOSUB 5690 : PRINT : IF T0<>T THEN 2140
- 2120 PRINT "YOUR MISSION BEGINS WITH YOUR STARSHIP LOCATED"
- 2130 PRINT "IN THE GALACTIC QUADRANT, `";G2$;"'.":GOTO 2150
- 2140 PRINT "NOW ENTERING ";G2$;" QUADRANT . . ."
- 2150 PRINT : K3=INT(G(Q1,Q2)*0.01):B3=INT(G(Q1,Q2)*0.1)-10*K3
- 2160 S3=G(Q1,Q2)-100*K3-10*B3:IF K3=0 THEN 2190
- 2170 PRINT"COMBAT AREA CONDITION RED": BEEP :IF S>200 THEN 2190
- 2180 PRINT " SHIELDS DANGEROUSLY LOW" : BEEP
- 2190 FOR I=1 TO 3:K(I,1)=0:K(I,2)=0:NEXT I
- 2200 FOR I=1 TO 3:K(I,3)=0: NEXT I:Q$=Z$+Z$+Z$+Z$+Z$+Z$+Z$+LEFT$(Z$,17)
- 2210 REM *** POSITON ENTERPRISE IN QUADRANT, THEN PLACE "K3" KLINGONS, & ***
- 2220 REM ***** "B3" STARBASES, & "S3" STARS ELSEWHERE. **************
- 2230 A$="<*>":Z1=S1:Z2=S2:GOSUB 5460:IF K3<1 THEN 2260
- 2240 FOR I=1 TO K3: GOSUB 5430:A$="+K+":Z1=R1:Z2=R2
- 2250 GOSUB 5460:K(I,1)=R1:K(I,2)=R2:K(I,3)=S9*(0.5+RND(1)): NEXT I
- 2260 IF B3<1 THEN 2280
- 2270 GOSUB 5430:A$=">!<":Z1=R1:B4=R1:Z2=R2:B5=R2:GOSUB 5460
- 2280 FOR I=1 TO S3: GOSUB 5430:A$=" * ":Z1=R1:Z2=R2: GOSUB 5460: NEXT I
- 2290 GOSUB 4470
- 2300 IF S+E>10 THEN IF E>10 OR D(7)=0 THEN 2370
- 2310 PRINT:PRINT "** FATAL ERROR ** YOU'VE JUST STRANDED YOUR SHIP IN "
- 2320 PRINT "SPACE":PRINT "YOU HAVE INSUFFICIENT MANEUVERING ENERGY,";
- 2330 PRINT " AND SHIELD CONTROL":PRINT"IS PRESENTLY INCAPABLE OF CROSS";
- 2340 PRINT"-CIRCUITING TO ENGINE ROOM!!" :SOUND 75,4 : SOUND 44,6
- 2350 PRINT :PRINT "LT.UHURA REPORTS ALL RADIO FREQUENCIES ARE INOPERABLE!!"
- 2360 GOTO 4330
- 2370 INPUT "COMMAND";A$
- 2380 FOR I=1 TO 9:IF LEFT$(A$,3)<>MID$(A1$,3*I-2,3) THEN 2400
- 2390 ON I GOTO 2510,2290,3290,3380,3600,3960,4050,4730,4360
- 2400 NEXT I:PRINT "ENTER ONE OF THE FOLLOWING:"
- 2410 PRINT" NAV (TO SET COURSE)"
- 2420 PRINT" SRS (FOR SHORT RANGE SENSOR SCAN)"
- 2430 PRINT" LRS (FOR LONG RANGE SENSOR SCAN)"
- 2440 PRINT" PHA (TO FIRE PHASERS)"
- 2450 PRINT " TOR (TO FIRE PHOTON TORPEDOES)"
- 2460 PRINT" SHE (TO RAISE OR LOWER SHIELDS)"
- 2470 PRINT" DAM (FOR DAMAGE CONTROL REPORTS)"
- 2480 PRINT" COM (TO CALL ON LIBRARY-COMPUTER)"
- 2490 PRINT" XXX (TO RESIGN YOUR COMMAND)":PRINT:GOTO 2300
- 2500 REM ************ COURSE CONTROL BEGINS HERE **********************
- 2510 INPUT "COURSE (0-9)";C1: IF C1=9 THEN C1=1
- 2520 IF C1>=1 AND C1<9 THEN 2550
- 2530 PRINT " LT. SULU REPORTS, 'INCORRECT COURSE DATA, SIR!'"
- 2540 PRINT "WOULD YOU LIKE TO TRY ANOTHER COMMAND, SIR?": GOTO 2300
- 2550 X$="8": IF D(1)<0 THEN X$="0.2"
- 2560 PRINT "WARP FACTOR (0-";X$;")";: INPUT W1: IF D(1)<0 AND W1>0.2 THEN 2630
- 2570 IF W1>0 AND W1<8 THEN 2640
- 2580 IF W1=0 THEN 2300
- 2590 PRINT " CHIEF ENGINEER SCOTT REPORTS `THE ENGINES WON'T TAKE";
- 2600 PRINT " WARP "; W1; "!'": PRINT
- 2610 PRINT "LET'S EASE IT DOWN SOME, CAPTAIN, OR THE ANTI-MATTER"
- 2620 PRINT "PODS WILL SURELY BLOW US ALL UP!!": GOTO 2300
- 2630 PRINT "WARP ENGINES ARE DAMAGED. MAXIUM SPEED = WARP 0.2": BEEP : GOTO 2300
- 2640 N=INT(W1*8+0.5):IF E-N>=0 THEN 2720
- 2650 PRINT"ENGINEERING REPORTS "INSUFFICIENT ENERGY AVAILABLE"
- 2660 PRINT " FOR MANEUVERING AT WARP";W1;"!'" : BEEP
- 2670 IF S<N-E OR D(7)<0 THEN 2300
- 2680 PRINT"DEFLECTOR CONTROL ROOM ACKNOWLEDGES";S;"UNITS OF ENERGY"
- 2690 PRINT" PRESENTLY DEPLOYED TO SHIELDS."
- 2700 GOTO 2300
- 2710 REM ******* KLINGONS MOVE/FIRE ON MOVING STARSHIP . . .***************
- 2720 FOR I=1 TO K3:IF K(I,3)=0 THEN 2750
- 2730 A$=" ":Z1=K(I,1):Z2=K(I,2):GOSUB 5460:GOSUB 5430
- 2740 K(I,1)=Z1:K(I,2)=Z2:A$="+K+": GOSUB 5460
- 2750 NEXT I:GOSUB 4210:D1=0:D6=W1:IF W1>=1 THEN D6=1
- 2760 FOR I=1 TO 8:IF D(I)>=0 THEN 2810
- 2770 D(I)=D(I)+D6: IF D(I)>-0.1 AND D(I)<0 THEN D(I)=-0.1: GOTO 2810
- 2780 IF D(I)<0 THEN 2810
- 2790 IF D1<>1 THEN D1=1 :PRINT "DAMAGE CONTROL REPORT: ";
- 2800 PRINT TAB(8);:R1=I:GOSUB 5520:PRINT G2$;" REPAIR COMPLETED." : BEEP
- 2810 NEXT I:IF RND(1)>0.2 THEN 2880
- 2820 R1=FNR(1):IF RND(1)>=0.6 THEN 2850
- 2830 D(R1)=D(R1)-(RND(1)*5+1) :PRINT"DAMAGE CONTROL REPORT: ";
- 2840 GOSUB 5520:PRINT G2$;" DAMAGED":PRINT: : BEEP :GOTO 2880
- 2850 D(R1)=D(R1)+RND(1)*3+1 :PRINT "DAMAGE CONTROL REPORT: ";
- 2860 GOSUB 5520:PRINT G2$" STATE OF REPAIR IMPROVED":PRINT : BEEP
- 2870 REM ********* BEGIN MOVING STARSHIP **************************
- 2880 A$=" ":Z1=INT(S1):Z2=INT(S2):GOSUB 5460
- 2890 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)):X=S1:Y=S2
- 2900 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)):Q4=Q1:Q5=Q2
- 2910 FOR I=1 TO N:S1=S1+X1:S2=S2+X2:IF S1<1 OR S1>=9 OR S2<1 OR S2>=9 THEN 3040
- 2920 S8=INT(S1)*24+INT(S2)*3-26: IF MID$(Q$,S8,2)=" " THEN 2970
- 2930 S1=INT(S1-X1):S2=INT(S2-X2):PRINT "WARP ENGINES SHUT DOWN AT ";
- 2940 PRINT "SECTOR";S1;",";S2;"DUE TO BAD NAVIGATION":BEEP :
- 2950 PRINT "CHIEF ENGINEER SCOTT REPORTS `THE HULL CAN'T TAKE"
- 2960 PRINT "MUCH MORE OF THIS BEATING, SIR'": GOTO 2980
- 2970 NEXT I:S1=INT(S1):S2=INT(S2)
- 2980 A$="<*>":Z1=INT(S1):Z2=INT(S2): GOSUB 5460:GOSUB 3210:T8=1
- 2990 IF W1<1 THEN T8=0.1*INT(10*W1)
- 3000 T=T+T8:IF T>T0+T9 THEN 4330
- 3010 REM *********** SEE IF DOCKED, THEN GET COMMAND ******************
- 3020 GOTO 2290
- 3030 REM *********** EXCEEDED QUADRANT LIMITS *************************
- 3040 X=8*Q1+X+N*X1:Y=8*Q2+Y+N*X2:Q1=INT(X/8):Q2=INT(Y/8):S1=INT(X-Q1*8)
- 3050 S2=INT(Y-Q2*8):IF S1=0 THEN Q1=Q1-1:S1=8
- 3060 IF S2=0 THEN Q2=Q2-1:S2=8
- 3070 X5=0: IF Q1<1 THEN X5=1:Q1=1:S1=1
- 3080 IF Q1>8 THEN X5=1 : Q1=8 : S1=8
- 3090 IF Q2<1 THEN X5=1 : Q2=1 : S2=1
- 3100 IF Q2>8 THEN X5=1 : Q2=8 : S2=8
- 3110 IF X5=0 THEN 3180
- 3120 PRINT "LT. UHURA REPORTS A MESSAGE FROM STARFLEET COMMAND:" :BEEP
- 3130 PRINT " `PERMISSION TO ATTEMPT CROSSING OF GALACTIC PERIMETER"
- 3140 PRINT " IS HEREBY *DENIED*. SHUT DOWN YOUR ENGINES.'"
- 3150 PRINT "CHIEF ENGINEER SCOTT REPORTS `WARP ENGINES SHUT DOWN"
- 3160 PRINT " AT SECTOR";S1;",";S2; " OF QUADRANT";Q1;",";Q2;"."
- 3170 IF T>T0 + T9 THEN 4330
- 3180 IF 8*Q1+Q2=8*Q4+Q5 THEN 2980
- 3190 T=T+1 : GOSUB 3210 : GOTO 2090
- 3200 REM ********* MANUEVER ENERGY S/R ******************************
- 3210 E=E-N-10 : IF E>0 THEN RETURN
- 3220 PRINT "SHIELD CONTROL SUPPIES ENERGY TO COMPLETE THE MANEUVER."
- 3230 PRINT
- 3240 PRINT "SCOTTY REPORTS,`AYE, CAPTAIN, WE WERE VERY LUCKY THIS TIME"
- 3250 PRINT "WE HAD BETTER BE CAREFUL OR NEXT TIME COULD BE OUR LAST'."
- 3260 S=S+E : E=0 : IF S<=0 THEN S=0
- 3270 RETURN
- 3280 REM *********LONG RANGE SENSOR SCAN CODE*************************
- 3290 IF D(3)<0 THEN PRINT "LONG RANGE SENSORS ARE INOPERABLE. ":BEEP : GOTO 2300
- 3300 PRINT "LONG RANGE SCAN FOR QUADRANT"; Q1; ","; Q2
- 3310 O1$="---------------------" : PRINT O1$
- 3320 FOR I=Q1-1 TO Q1+1 : N(1)=-1 : N(2)=-2 : N(3)=-3 : FOR J=Q2-1 TO Q2+1
- 3330 IF I>0 AND I<9 AND J>0 AND J<9 THEN N(J-Q2+2)=G(I,J) : Z(I,J)=G(I,J)
- 3340 NEXT J: FOR L=1 TO 3: PRINT ": ";: IF N(L)<0 THEN PRINT "*** ";: GOTO 3360
- 3350 PRINT RIGHT$(STR$(N(L)+1000),3);" ";
- 3360 NEXT L: PRINT ":": PRINT O1$: NEXT I: GOTO 2300
- 3370 REM ************PHASER CONTROL CODE BEGINS HERE*********************
- 3380 IF D(4)<0 THEN PRINT "PHASERS INOPERATIVE": BEEP :GOTO 2300
- 3390 IF K3>0 THEN 3420
- 3400 PRINT "SCIENCE OFFICER SPOCK REPORTS `SENSORS SHOW NO ENEMY SHIPS"
- 3410 PRINT " IN THIS QUADRANT'": GOTO 2300
- 3420 IF D(8)<0 THEN PRINT "COMPUTER FAILURE HAMPERS ACCURACY" : BEEP
- 3430 PRINT "PHASERS LOCKED ON TARGET; ";
- 3440 PRINT "ENERGY AVAILABLE = ";E;"UNITS"
- 3450 INPUT "NUMBER OF UNITS TO FIRE";X:IF X<=0 THEN 2300
- 3460 IF E-X<0 THEN 3440
- 3470 E=E-X : IF D(7)<0 THEN X=X*RND(1)
- 3480 H1=INT(X/K3) : FOR I=1 TO 3 : IF K(I,3)<=0 THEN 3580
- 3490 H=INT((H1/RND(0))*(RND(1)+2)) : IF H>0.15*K(I,3) THEN 3510
- 3500 PRINT "SENSORS SHOW NO DAMAGE TO ENEMY AT ";K(I,1);","; K(I,2): GOTO 3580
- 3510 K(I,3)=K(I,3)-H: PRINT H; "UNIT HIT ON KLINGON AT SECTOR"; K(I,1);",";
- 3520 PRINT K(I,2):IF K(I,3)<=0 THEN PRINT "*** KLINGON DESTROYED ***"
- 3530 SOUND 45,5
- 3540 GOTO 3560
- 3550 PRINT " (SENSORS SHOW"; K(I,3); "UNITS REMAINING)": GOTO 3580
- 3560 K3=K3-1:K9=K9-1: Z1=K(I,1): Z2=K(I,2):A$ =" ": GOSUB 5460
- 3570 K(I,3)=0:G(Q1,Q2)=G(Q1,Q2)-100:Z(Q1,Q2)=G(Q1,Q2):IF K9<=0 THEN 4430
- 3580 NEXT I: GOSUB 4210: GOTO 2300
- 3590 REM ************** PHOTON TORPEDO CODE BEGINS HERE *******************
- 3600 IF P<=0 THEN PRINT "ALL PHOTON TORPEDOES EXPENDED":BEEP : GOTO 2300
- 3610 IF D(5)<0 THEN PRINT "PHOTON TUBES ARE NOT OPERATIONAL": BEEP : GOTO 2300
- 3620 INPUT "PHOTON TORPEDO COURSE (1-9)"; C1: IF C1=9 THEN C1=1
- 3630 IF C1>=1 AND C1<9 THEN 3660
- 3640 PRINT "ENSIGN CHEKOV REPORTS, `INCORRECT COURSE DATA, SIR!'"
- 3650 GOTO 2300
- 3660 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)):E=E-2: P=P-1
- 3670 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)):X=S1:Y=S2
- 3680 PRINT "TORPEDO TRACK:"
- 3690 X=X+X1:Y=Y+X2:X3=INT(X+0.5):Y3=INT(Y+0.5)
- 3700 IF X3<1 OR X3>8 OR Y3<1 OR Y3>8 THEN 3940
- 3710 PRINT " ";X3;",";Y3:A$=" ":Z1=X:X2=Y: GOSUB 5620
- 3720 IF Z3<>0 THEN 3690
- 3730 A$="+K+": Z1=X:Z2=Y: GOSUB 5620 : IF Z3=0 THEN 3790
- 3740 PRINT "*** KLINGON DESTROYED ***":K3=K3-1:K9=K9-1:SOUND 45,5
- 3750 IF K9<=0 THEN 4430
- 3760 FOR I=1 TO 3 : IF X3=K(I,1) AND Y3=K(I,2) THEN 3780
- 3770 NEXT I:I=3
- 3780 K(I,3)=0: GOTO 3920
- 3790 A$=" * ":Z1=X : Z2=Y : GOSUB 5620 :IF Z3=0 THEN 3810
- 3800 PRINT "STAR AT";X3;",";Y3;"ABSORBED TORPEDO ENERGY.":GOSUB 4210:GOTO 2300
- 3810 A$=">!<":Z1=X:Z2=Y:GOSUB 5620:IF Z3=0 THEN 3620
- 3820 PRINT "*** STARBASE DESTROYED ***": SOUND 45,5 :PRINT :B3=B3-1:B9=B9-1
- 3830 IF B9>0 OR K9>T-T0-T9 THEN 3870
- 3840 PRINT"THAT DOES IT, CAPTAIN!! YOU ARE HEREBY RELIEVED OF COMMAND"
- 3850 PRINT"AND SENTENCED TO 99 STARDATES AT HARD LABOR ON CYGNUS 12!!":PRINT
- 3860 GOTO 4360
- 3870 PRINT"STARFLEET COMMAND REVIEWING YOUR RECORD TO CONSIDER" : SOUND 45,5
- 3880 PRINT "CONVENING A GENERAL COURT MARTIAL."
- 3890 PRINT "YOU ARE ADVISED TO BE MORE CAREFUL IN THE FUTURE,"
- 3900 PRINT "GOOD LAWYERS ARE HARD TO FIND, ESPECIALLY IN THIS QUADRANT--"
- 3910 PRINT "THEY ARE ALMOST AS BAD AS DENUBIAN BLOODSUCKERS.":PRINT :D0=0
- 3920 Z1=X:Z2=Y:A$=" ":GOSUB 5460
- 3930 G(Q1,Q2)=K3*100+B3*10+S3:Z(Q1,Q2)=G(Q1,Q2):GOSUB 4210:GOTO 2300
- 3940 PRINT"TORPEDO MISSED":GOSUB 4210:GOTO 2300
- 3950 REM ********** SHIELD CONTROL ************************
- 3960 IF D(7)<0 THEN PRINT "SHIELD CONTROL INOPERABLE": BEEP : GOTO 2300
- 3970 PRINT "ENERGY AVAILABLE =";E+S;:INPUT"NUMBER OF UNITS TO SHIELDS";X
- 3980 IF X<0 OR S=X THEN PRINT"<SHIELDS UNCHANGED>":GOTO 2300
- 3990 IF X<=E+S THEN 4020
- 4000 PRINT "SHIELD CONTROL REPORTS `THIS IS NOT THE FEDERATION TREASURY.'"
- 4010 PRINT "<SHIELDS UNCHANGED>": BEEP : GOTO 2300
- 4020 E=E+S-X:S=X:PRINT"DEFLECTOR CONTROL ROOM REPORT:"
- 4030 PRINT " `SHIELDS NOW AT";INT(S);"UNITS PER YOUR COMMAND.'":GOTO 2300
- 4040 REM *************** DAMAGE CONTROL ***********************
- 4050 IF D(6)>=0 THEN 4160
- 4060 PRINT "DAMAGE CONTROL REPORT NOT AVAILABLE":BEEP :IF D0=0 THEN 2300
- 4070 D3=0:FOR I=1 TO 8:IF D(I)<0 THEN D3=D3+1
- 4080 NEXT I:IF D3=0 THEN 2300
- 4090 PRINT:D3=D3+D4:IF D3>=1 THEN D3=0.9
- 4100 PRINT "TECHNICIANS STANDING BY TO EFFECT REPAIRS TO YOUR SHIP;"
- 4110 PRINT "ESTIMATED TIME TO REPAIR:";0.01*INT(100*D3);"STARDATES"
- 4120 INPUT "WILL YOU AUTHORIZE THE REPAIR ORDER (Y/N)";A$
- 4130 IF A$<>"Y" THEN 2300
- 4140 FOR I=1 TO 8:IF D(I)<0 THEN D(I)=0
- 4150 NEXT I:T=T+D3+0.1
- 4160 PRINT:PRINT "DEVICE STATE OF REPAIR":FOR R1=1 TO 8
- 4170 GOSUB 5520:PRINT G2$; LEFT$(Z$,25-LEN(G2$));INT(D(R1)*100)*0.01
- 4180 NEXT R1:PRINT:IF D0<>0 THEN 4070
- 4190 GOTO 2300
- 4200 REM ************ KLINGONS SHOOTING *************************
- 4210 IF K3<=0 THEN RETURN
- 4220 IF D0<>0 THEN PRINT "STARBASE SHIELDS PROTECT THE ENTERPRISE":SOUND 45,52835 RETURN
- 4230 FOR I=1 TO 3:IF K(I,3)<=0 THEN 4310
- 4240 H=INT((K(I,3)/RND(1))*(2+RND(1))):S=S-H:K(I,3)=K(I,3)/(3+RND(0))
- 4250 PRINT"UNIT HIT ON ENTERPRISE FROM SECTOR";K(I,1);",";K(I,2) :SOUND 55,4
- 4260 IF S<=0 THEN 4340
- 4270 PRINT" SHIELDS DOWN TO";S;"UNITS>": BEEP :IF H<20 THEN 4310
- 4280 IF RND(1)>0.6 OR H/S<=0.02 THEN 4310
- 4290 R1=FNR(1):D(R1)=D(R1)-H/S-0.5*RND(1):GOSUB 5520
- 4300 PRINT"DAMAGE CONTROL REPORTS `";G2$;" DAMAGED BY THE HIT'" : BEEP
- 4310 NEXT I:RETURN
- 4320 REM************ END OF GAME *********************************
- 4330 PRINT "IT IS STARDATE";T:GOTO 4360
- 4340 PRINT:PRINT"THE ENTERPRISE HAS BEEN DESTROYED. THE FEDERATION ";
- 4350 GOTO 4330
- 4360 PRINT "THERE WERE";K9;"KLINGON BATTLE CRUISERS LEFT AT"
- 4370 PRINT "THE END OF YOUR MISSION."
- 4380 PRINT:PRINT:IF B9=0 THEN 4420
- 4390 PRINT "THE FEDERATION IS IN NEED OF A NEW STARSHIP COMMANDER"
- 4400 PRINT "FOR A SIMILAR MISSION -- IF THERE IS A VOLUNTEER,"
- 4410 INPUT "LET HIM STEP FORWARD AND ENTER `AYE'";A$:IF A$="AYE" THEN 1450
- 4420 END
- 4430 PRINT "CONGRATULATIONS, CAPTAIN! THE LAST KLINGON BATTLE CRUISER"
- 4440 PRINT "MENACING THE FEDERATION HAS BEEN DESTROYED.":PRINT
- 4450 PRINT "YOUR EFFICIENCY RATING IS";1000*(K7/(T-T0))^2:GOTO 4380
- 4460 REM*********** SHORT RANGE SENSOR SCAN & STARTUP SUBROUTINE ***********
- 4470 FOR I=S1-1 TO S1+1:FOR J=S2-1 TO S2+1
- 4480 IF INT(I+0.5)<1 OR INT(I+0.5)>8 OR INT(J+0.5)<1 OR INT(J+0.5)>8 THEN 4500
- 4490 A$=">!<":Z1=I:Z2=J:GOSUB 5620:IF Z3=1 THEN 4510
- 4500 NEXT J:NEXT I:D0=0:GOTO 4560
- 4510 D0=1:C$="DOCKED":E=E0:P=P0
- 4520 PRINT "SHIELDS DROPPED FOR DOCKING PURPOSES": BEEP :PRINT
- 4530 PRINT "IF YOU NEED OR WANT TO EFFECT REPAIRS TO DAMAGED EQUIPMENT,"
- 4540 PRINT "WHILE YOU ARE DOCKED, USE THE DAMAGE COMMAND (DAM)." :PRINT
- 4550 S=0:GOTO 4580
- 4560 IF K3>0 THEN C$="*RED*":GOTO 4580
- 4570 C$="GREEN":IF E<E0*0.1 THEN C$="YELLOW"
- 4580 IF D(2)>=0 THEN 4600
- 4590 PRINT:PRINT"*** SHORT RANGE SENSORS ARE OUT ***":BEEP:PRINT:RETURN
- 4600 O1$="---------------------------------":PRINT O1$ : FOR I=1 TO 8
- 4610 FOR J=(I-1)*24+1 TO (I-1)*24+22 STEP 3:PRINT" ";MID$(Q$,J,3);:NEXT J
- 4620 ON I GOTO 4630,4640,4650,4660,4670,4680,4690,4700
- 4630 PRINT" STARDATE ";INT(T*10)*0.1:GOTO 4710
- 4640 PRINT" CONDITION ";C$:GOTO 4710
- 4650 PRINT" QUADRANT ";Q1;",";Q2:GOTO 4710
- 4660 PRINT" SECTOR ";S1;",";S2:GOTO 4710
- 4670 PRINT" PHOTON TORPEDOES ";INT(P):GOTO 4710
- 4680 PRINT" TOTAL ENERGY ";INT(E+S):GOTO 4710
- 4690 PRINT" SHIELDS ";INT(S):GOTO 4710
- 4700 PRINT" KLINGONS REMAINING";INT(K9)
- 4710 NEXT I:PRINT O1$:RETURN
- 4720 REM**************LIBRARY COMPUTER CODE****************
- 4730 IF D(8)<0 THEN PRINT"COMPUTER DISABLED":BEEP : GOTO 2300
- 4740 PRINT:PRINT
- 4750 PRINT "HIT `6' FOR A LISTING OF FUNCTIONS"
- 4760 PRINT "AVAILABLE FROM LIBRARY-COMPUTER...":PRINT:PRINT : GOTO 4770
- 4770 INPUT"COMPUTER ACTIVE AND AWAITING COMMAND";A:IF A<0 THEN 2300
- 4780 PRINT:H8=1:ON A+1 GOTO 4890,5020,5130,5390,5190,4870
- 4790 PRINT"FUNCTIONS AVAILABLE FROM LIBRARY-COMPUTER:"
- 4800 PRINT" 0 = CUMULATIVE GALACTIC RECORD"
- 4810 PRINT" 1 = STATUS REPORT"
- 4820 PRINT" 2 = PHOTON TORPEDE DATA"
- 4830 PRINT" 3 = STARBASE NAV DATA"
- 4840 PRINT" 4 = DIRECTION/DISTANCE CALCULATOR"
- 4850 PRINT" 5 = GALAXY `REGION NAME' MAP":PRINT:GOTO 4770
- 4860 REM*************** SETUP TO CHANGE CUM GAL RECORD TO GALAXY MAT **********
- 4870 H8=0:G5=1:PRINT" THE GALAXY":GOTO 4920
- 4880 REM*************** CUM GALACTIC RECORD ****************
- 4890 PRINT:PRINT" ";
- 4900 PRINT"COMPUTER RECORD OF GALAXY FOR QUADRANT";Q1;",";Q2
- 4910 PRINT
- 4920 PRINT" 1 2 3 4 5 6 7 8"
- 4930 O1$=" ----- ----- ----- ----- ----- ----- ----- -----"
- 4940 PRINT O1$:FOR I=1 TO 8:PRINT I;:IF H8=0 THEN 4980
- 4950 FOR J=1 TO 8:PRINT" ";:IF Z(I,J)=0 THEN PRINT"***";:GOTO 4970
- 4960 PRINT RIGHT$(STR$(Z(I,J)+1000),3);
- 4970 NEXT J:GOTO 5000
- 4980 Z4=I:Z5=1:GOSUB 5690:J0=INT(15-0.5*LEN(G2$)):PRINT TAB(J0);G2$;
- 4990 Z5=5:GOSUB 5690:J0=INT(39-0.5*LEN(G2$)):PRINT TAB(J0);G2$;
- 5000 PRINT:PRINT O1$:NEXT I:PRINT :POKE 1229,0:POKE 1237,1 :NULL=0:GOTO 2300
- 5010 REM*************** STATUS REPORT *****************
- 5020 PRINT " STATUS REPORT:":X$="":IF K9>1 THEN X$="S"
- 5030 PRINT"KLINGON";X$;" LEFT: ";K9
- 5040 PRINT"MISSION MUST BE COMPLETED IN";0.1*INT((T0+T9-T)*10);"STARDATES"
- 5050 X$="S":IF B9<2 THEN X$="":IF B9<1 THEN 5080
- 5060 PRINT"THE FEDERATION IS MAINTAINING";B9;"STARBASE";X$;" IN THE GALAXY"
- 5070 GOTO 4050
- 5080 PRINT"YOUR POSITION IN THE GALAXY INDICATES "
- 5090 PRINT"THAT YOU HAVE NO STARBASES AVAILABLE TO YOU."
- 5100 PRINT:PRINT"CAPTAIN, YOU ARE ON YOUR OWN--BE CAREFUL!!!!"
- 5110 GOTO 4050
- 5120 REM************* TORPEDO, BASE NAV, D/D CALCULATOR ****************
- 5130 IF K3<=0 THEN 3400
- 5140 X$="":IF K3>1 THEN X$="S"
- 5150 PRINT "FROM ENTERPRISE TO KLINGON BATTLE CRUISER";X$
- 5160 H8=0: FOR I=1 TO 3: IF K(I,3)<=0 THEN 5380
- 5170 W1=K(I,1):X=K(I,2)
- 5180 C1=S1:A=S2: GOTO 5230
- 5190 PRINT "DIRECTION/DISTANCE CALCULATOR:"
- 5200 PRINT "YOU ARE AT QUADRANT ";Q1;",";Q2;" SECTOR ";S1;",";S2
- 5210 PRINT "PLESE ENTER": INPUT " INITIAL COORDINATES (X,Y)";C1,A
- 5220 INPUT " FINAL COORDINATES (X,Y)";W1,X
- 5230 X=X-A:A=C1-W1: IF X<0 THEN 5310
- 5240 IF A<0 THEN 5330
- 5250 IF X>0 THEN 5270
- 5260 IF A=0 THEN C1=5: GOTO 5280
- 5270 C1=1
- 5280 IF ABS(A)<=ABS(X) THEN 5300
- 5290 PRINT"DIRECTION ="; C1+(((ABS(A)-ABS(X))+ABS(A))/ABS(A)): GOTO 5370
- 5300 PRINT"DIRECTION =";C1+(ABS(A)/ABS(X)): GOTO 5370
- 5310 IF A>0 THEN C1=3 : GOTO 5340
- 5320 IF X<>0 THEN C1=5 : GOTO 5280
- 5330 C1=7
- 5340 IF ABS(A)>=ABS(X) THEN 5360
- 5350 PRINT "DIRECTION ="; C1+(((ABS(X)-ABS(A))+ABS(X))/ABS(X)) :GOTO 5370
- 5360 PRINT "DIRECTION =";C1+(ABS(X)/ABS(A))
- 5370 PRINT "DISTANCE ="; SQR(X^2+A^2): IF H8=1 THEN 2300
- 5380 NEXT I : GOTO 2300
- 5390 IF B3<>0 THEN PRINT"FROM ENTERPRISE TO STARBASE:":W1=B4:X=B5: GOTO 5180
- 5400 PRINT "MR. SPOCK REPORTS, `SENSORS SHOW NO STARBASES IN THIS";
- 5410 PRINT " QUADRANT.'" : GOTO 2300
- 5420 REM ********** FIND EMPTY PLACE IN QUADRANT (FOR THINGS) **********
- 5430 R1=FNR(1):R2=FNR(1):A$=" ":Z1=R1:Z2=R2: GOSUB 5620: IF Z3=0 THEN 5430
- 5440 RETURN
- 5450 REM *********** INSERT IN STRING ARRAY FOR QUADRANT ****************
- 5460 S8=INT(Z2-0.5)*3+INT(Z1-0.5)*24+1
- 5470 IF LEN(A$)<>3 THEN PRINT"ERROR": STOP
- 5480 IF S8=1 THEN Q$=A$+RIGHT$(Q$,189) : RETURN
- 5490 IF S8=190 THEN Q$=LEFT$(Q$,189)+A$ : RETURN
- 5500 Q$=LEFT$(Q$,S8-1)+A$+RIGHT$(Q$,190-S8) : RETURN
- 5510 REM **************** PRINTS DEVICE NAME **************************
- 5520 ON R1 GOTO 5530,5540,5550,5560,5570,5580,5590,5600
- 5530 G2$="WARP ENGINES": RETURN
- 5540 G2$="SHORT RANGE SENSORS": RETURN
- 5550 G2$="LONG RANGE SENSORS": RETURN
- 5560 G2$="PHASER CONTROL": RETURN
- 5570 G2$="PHOTON TUBES": RETURN
- 5580 G2$="DAMAGE CONTROL": RETURN
- 5590 G2$="SHIELD CONTROL": RETURN
- 5600 G2$="LIBRARY-COMPUTER": RETURN
- 5610 REM ************** STRING COMPARISON IN QUADRANT ARRAY ****************
- 5620 Z1=INT(Z1+0.5):Z2=INT(Z2+0.5):S8=(Z2-1)*3+(Z1-1)*24+1:Z3=0
- 5630 IF MID$(Q$,S8,3)<>A$ THEN RETURN
- 5640 Z3=1: RETURN
- 5650 REM *********** QUADRANT NAME IN G2$ FROM Z4, Z5 (=Q1,Q2) **************
- 5660 REM **** CALL WITH G5=1 TO GET REGION NAME ONLY ****
- 5670 REM ************ QUADRANT NAME IN G2$ FROM Z4, Z5 (=Q1,Q2) ****
- 5680 REM ************ CALL WITH G5=1 TO GET REGION NAME ONLY ****
- 5690 IF Z5<=4 THEN ON Z4 GOTO 5710,5720,5730,5740,5750,5760,5770,5780
- 5700 GOTO 5790
- 5710 G2$="ANTARES":GOTO 5880
- 5720 G2$="RIGEL":GOTO 5880
- 5730 G2$="PROCYON":GOTO 5880
- 5740 G2$="VEGA":GOTO 5880
- 5750 G2$="CANOPUS":GOTO 5880
- 5760 G2$="ALTAIR":GOTO 5880
- 5770 G2$="SAGITTARIUS":GOTO 5880
- 5780 G2$="POLLUX":GOTO 5880
- 5790 ON Z4 GOTO 5800,5810,5820,5830,5840,5850,5860,5870
- 5800 G2$="SIRIUS":GOTO 5880
- 5810 G2$="DENEB":GOTO 5880
- 5820 G2$="CAPELLA":GOTO 5880
- 5830 G2$="BETELGEUSE":GOTO 5880
- 5840 G2$="ALDEBARAN":GOTO 5880
- 5850 G2$="REGULUS":GOTO 5880
- 5860 G2$="ARCTURUS":GOTO 5880
- 5870 G2$="SPICA"
- 5880 IF G5<>1 THEN ON Z5 GOTO 5900,5910,5920,5930,5900,5910,5920,5930
- 5890 RETURN
- 5900 G2$=G2$+" I":RETURN
- 5910 G2$=G2$+" II":RETURN
- 5920 G2$=G2$+" III":RETURN
- 5930 G2$=G2$+" IV":RETURN
- 10500 IN$=INKEY$:IF IN$="" THEN 10500 ELSE CLS:RETURN
-